Cytosim  PI
Cytoskeleton Simulator
MatrixSymmetric Class Reference

Detailed Description

the full upper triangular is stored

Inheritance diagram for MatrixSymmetric:
Matrix

Public Member Functions

unsigned int size () const
 returns the size of the matrix
 
void deallocate ()
 base for destructor
 
 MatrixSymmetric ()
 default constructor
 
 MatrixSymmetric (int sz, real *array)
 constructor from an existing array
 
virtual ~MatrixSymmetric ()
 default destructor
 
void makeZero ()
 set all the element to zero
 
void allocate (unsigned int sz)
 allocate the matrix to hold ( sz * sz )
 
realaddr (index_type x, index_type y) const
 returns the address of element at (x, y), no allocation is done
 
realoperator() (index_type x, index_type y)
 returns the address of element at (x, y), allocating if necessary
 
void scale (real a)
 scale the matrix by a scalar factor
 
void vecMulAdd (const real *X, real *Y) const
 multiplication of a vector: Y = Y + M * X, dim(X) = dim(M)
 
void vecMulAddIso2D (const real *X, real *Y) const
 2D isotropic multiplication of a vector: Y = Y + M * X
 
void vecMulAddIso3D (const real *X, real *Y) const
 3D isotropic multiplication of a vector: Y = Y + M * X
 
bool nonZero () const
 true if matrix is non-zero
 
unsigned int nbNonZeroElements () const
 number of element which are non-zero
 
std::string what () const
 returns a string which a description of the type of matrix
 
- Public Member Functions inherited from Matrix
 Matrix ()
 empty constructor
 
virtual ~Matrix ()
 empty destructor
 
real value (index_type x, index_type y) const
 returns the value of element at (x, y) or zero if not allocated
 
void copyBlock (real *M, index_type x, unsigned int sx, index_type y, unsigned int sy) const
 copy the block ( x, y, x+sx, y+sy ) from this matrix into M
 
virtual void addDiagonalBlock (real *M, index_type x, unsigned int sx) const
 add the block ( x, x, x+sx, x+sx ) from this matrix to M
 
virtual void addTriangularBlock (real *M, index_type x, unsigned int sx) const
 add the upper triangular half of the block ( x, x, x+sx, x+sx ) from this matrix to M
 
virtual void prepareForMultiply ()
 Optional optimization to accelerate multiplications below.
 
virtual void vecMul (const real *X, real *Y) const
 Vector multiplication: Y <- M * X, size(X) = size(Y) = size(M)
 
virtual real maxNorm () const
 maximum absolute value considering all the elements
 
virtual void printSparse (std::ostream &) const
 printf debug function in sparse mode: i, j : value
 
virtual void printFull (std::ostream &) const
 printf debug function in full lines, all columns
 

Additional Inherited Members

- Public Types inherited from Matrix
typedef unsigned int index_type
 type of an index into the matrix